module.exports = {

    // 项目开发生产部署时，所生产的静态资源文件将以该目录进行定义访问
    //  在 index.html 页面中可通过语法 <%= BASE_URL %> 获取该配置路径，完成资源定义
    //  在开发启动时，开发服务器也将基于该配置完成开发服务器项目的路径定义
    //  因为vue的模块化项目中，内置功能变量 process 用于获取程序运行环境配置的
    //  其中 process.env.NODE_ENV 通过返回 product 或 development 描述项目处于生产或者开发环境
    // publicPath:"/film/",
    // publicPath:process.env.NODE_ENV === 'production'?"/film/":"/",
 
    publicPath: "./",

    // 生成打包文件对应的 map 文件 
    // 让打包后的JS文件具有浏览器查看源代码的功能
    productionSourceMap: false,

    // 启用 gz 高压缩文件打包方式，需要服务器定义配合
    // configureWebpack:config => {
    //     return {
    //         plugins: [

    //             new CompressionPlugin({
    //                 test: /\.js$|\.html$|.\css/, //匹配文件名
    //                 threshold: 10240,//对超过10k的数据压缩
    //                 deleteOriginalAssets: false //不删除源文件
    //             })
    //         ]
    //     }
    // },


    css:{
        // 定义 在开发环境中，是否开始样式调试功能map文件
        sourceMap:true
    },

    // 开发服务器的相关功能配置，配置开发服务器的地址端口功能
    //          该配置项支队开发环境生效
    devServer:{
        // 代理服务器配置
        // proxy:Object
        // Object 定义代理服务器的相关代理规则
        proxy:{
            // key:value    
            // key 可以定义任意字符：描述当前代理服务器需要拦截的请求地址 前缀
            // key 取值以 地址方式定义
            "/api":{
                target:"http://127.0.0.1:80",// 定义被拦截请求的真实访问地址
                // 拦截前缀的重写规则
                /*
                    例如：
                        项目中请求了 /api/filmApi/loadFilms.php 
                        更具匹配规则重写地址 "^/api":""
                        因为规则问题，地址吧被重新定义 /filmApi/loadFilms.php
                        代理服务器会将该请求转发到 target 属性地址上
                        真实发生的请求地址将变为  http://127.0.0.1:80/filmApi/loadFilms.php 
                */
                pathRewrite:{
                    "^/api":""  // key 匹配的重写  正则 规则
                },
                logLevel:"debug"  // 在项目开发服务器的启动控制台进行 日志输出
            }
        }
    },

    pluginOptions: {
        'style-resources-loader': {
            preProcessor: 'less',
            patterns: [
                "./src/less/var.less"
            ]
        }
    }
}
